## Test that llvm-readobj/llvm-readelf shows proper relocation type
## names and values for coff-x64 target.

# RUN: yaml2obj %s -o %t-coff-x86_64.o
# RUN: llvm-readobj -r --expand-relocs %t-coff-x86_64.o | FileCheck %s

# CHECK: Type: IMAGE_REL_AMD64_ABSOLUTE (0)
# CHECK: Type: IMAGE_REL_AMD64_ADDR64 (1)
# CHECK: Type: IMAGE_REL_AMD64_ADDR32 (2)
# CHECK: Type: IMAGE_REL_AMD64_ADDR32NB (3)
# CHECK: Type: IMAGE_REL_AMD64_REL32 (4)
# CHECK: Type: IMAGE_REL_AMD64_REL32_1 (5)
# CHECK: Type: IMAGE_REL_AMD64_REL32_2 (6)
# CHECK: Type: IMAGE_REL_AMD64_REL32_3 (7)
# CHECK: Type: IMAGE_REL_AMD64_REL32_4 (8)
# CHECK: Type: IMAGE_REL_AMD64_REL32_5 (9)
# CHECK: Type: IMAGE_REL_AMD64_SECTION (10)
# CHECK: Type: IMAGE_REL_AMD64_SECREL (11)
# CHECK: Type: IMAGE_REL_AMD64_SECREL7 (12)
# CHECK: Type: IMAGE_REL_AMD64_TOKEN (13)
# CHECK: Type: IMAGE_REL_AMD64_SREL32 (14)
# CHECK: Type: IMAGE_REL_AMD64_PAIR (15)
# CHECK: Type: IMAGE_REL_AMD64_SSPAN32 (16)

--- !COFF
header:
  Machine:         IMAGE_FILE_MACHINE_AMD64
  Characteristics: [  ]
sections:
  - Name:            .text
    Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ]
    Alignment:       4
    SectionData:     00
    Relocations:
      - VirtualAddress: 4
        Type:           IMAGE_REL_AMD64_ABSOLUTE
      - VirtualAddress: 12
        Type:           IMAGE_REL_AMD64_ADDR64
      - VirtualAddress: 20
        Type:           IMAGE_REL_AMD64_ADDR32
      - VirtualAddress: 28
        Type:           IMAGE_REL_AMD64_ADDR32NB
      - VirtualAddress: 36
        Type:           IMAGE_REL_AMD64_REL32
      - VirtualAddress: 44
        Type:           IMAGE_REL_AMD64_REL32_1
      - VirtualAddress: 52
        Type:           IMAGE_REL_AMD64_REL32_2
      - VirtualAddress: 60
        Type:           IMAGE_REL_AMD64_REL32_3
      - VirtualAddress: 68
        Type:           IMAGE_REL_AMD64_REL32_4
      - VirtualAddress: 76
        Type:           IMAGE_REL_AMD64_REL32_5
      - VirtualAddress: 84
        Type:           IMAGE_REL_AMD64_SECTION
      - VirtualAddress: 92
        Type:           IMAGE_REL_AMD64_SECREL
      - VirtualAddress: 100
        Type:           IMAGE_REL_AMD64_SECREL7
      - VirtualAddress: 108
        Type:           IMAGE_REL_AMD64_TOKEN
      - VirtualAddress: 116
        Type:           IMAGE_REL_AMD64_SREL32
      - VirtualAddress: 124
        Type:           IMAGE_REL_AMD64_PAIR
      - VirtualAddress: 132
        Type:           IMAGE_REL_AMD64_SSPAN32
symbols:
  - Name:            .text
    Value:           0
    SectionNumber:   1
    SimpleType:      IMAGE_SYM_TYPE_NULL
    ComplexType:     IMAGE_SYM_DTYPE_NULL
    StorageClass:    IMAGE_SYM_CLASS_STATIC
    SectionDefinition: 
      Length:          136
      NumberOfRelocations: 17
      NumberOfLinenumbers: 0
      CheckSum:        0
      Number:          1
